package com.kun.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class AddressUtils {

    // 未知地址
    public static final String UNKNOWN = "XX XX";

    /**
     * 根据IP地址获取真实的地理位置
     */
    public static String getRealAddressByIP(String ip) {
        try {
            // 使用外部服务获取登录地点信息
            String apiUrl = "http://ip-api.com/json/" + ip + "?lang=zh-CN";
            String response = HttpUtil.get(apiUrl);
            JSONObject locationInfo = JSONUtil.parseObj(response);
            // 提取地理位置信息
            return locationInfo.getStr("country") + " " +
                    locationInfo.getStr("regionName") + " " +
                    locationInfo.getStr("city");
        } catch (Exception e) {
            log.error("获取地理位置异常，IP：{}", ip, e);
        }
        return UNKNOWN;
    }
}
